Enhancing geo-location precision in wireless systems

ABSTRACT

A system may be configured to compute an estimated location of a user device based on an estimation coefficient and a measured distance between the user device and a base station. The estimation coefficient may be based on: an actual distance between a reference device and the base station, and a measured distance between the reference device and the base station. The system may store or output the information regarding the estimated location of the device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of, and claims the benefit of, U.S.patent application Ser. No. 13/670,872, titled “Enhancing Geo-LocationPrecision in Wireless Systems,” filed Nov. 7, 2012, the contents ofwhich are hereby incorporated by reference in their entirety.

BACKGROUND

Wireless networks, such as cellular networks, may provide networkconnectivity to user devices, such as cellular telephones. Thesewireless networks may determine geographical locations, or approximategeographical locations, of these user devices. For example, a wirelessnetwork may determine the geographical location of a user device basedon the location of a base station to which the user device is connected.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A-1D illustrate an overview of one or more exampleimplementations described herein;

FIG. 2 illustrates an example network in which systems and/or methods,described herein, may be implemented;

FIG. 3 illustrates example functional components of a locationestimation server, according to one or more implementations describedherein;

FIGS. 4, 5 and 6A-6C illustrate example data structures that may bestored by one or more devices, according to one or more implementationsdescribed herein;

FIG. 7 illustrates an example process for estimating a distance of adevice from a base station and/or for generating or modifying estimationinformation, according to one or more implementations described herein;

FIG. 8 illustrates an example process for generating or modifyingestimation information, according to one or more implementationsdescribed herein;

FIG. 9 illustrates an example process for estimating a distance of adevice from a base station based on estimation information, according toone or more implementations described herein;

FIG. 10 illustrates an example process for calculating a location of adevice based on signal strength and distance from a base station,according to one or more implementations described herein;

FIGS. 11A-11C illustrate a conceptual example of calculating a locationof a device based on signal strength and distance from a base station,according to one or more implementations described herein; and

FIG. 12 illustrates example components of one or more devices shown inFIG. 2.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

The following detailed description refers to the accompanying drawings.The same reference numbers in different drawings may identify the sameor similar elements.

Existing systems often include functionality for determining (orapproximately determining) a location of a user device. Such systems mayinclude, for example, a cellular telephone system, which may determine alocation of a user device using triangulation and/or one or more othertechniques. Such triangulation techniques may involve determining thelocation of the user device based on signals sent and/or or received bymultiple base stations, which may be located at different locations.

Some systems may determine the location of a user device based onsignals sent and/or received by a single base station. For example, somesuch systems may determine the distance of a user device from aparticular base station based on round trip delay (“RTD”) and/or a radiosignal strength indicator (“RSSI”) of signaling messages transmittedbetween the user device and the base station. For example, these factors(e.g., RTD and/or RSSI) may be values that are measured by devicesassociated with a cellular network. In some situations, this determineddistance may be inaccurate, due to one or more factors, such asmultipath radio propagation, processing delay, antenna system phasedelay, chip quantization error, and/or other factors.

A system and/or method, described herein, may be capable of moreaccurately determining a location of a user device, based on signalstransmitted between the user device and a base station (e.g., betweenthe user device and a single base station). FIGS. 1A-1D illustrate anoverview of one or more example implementations described herein. Asshown in FIG. 1A, coverage area 105 may conceptually represent acoverage area associated with base station 110, which may be a basestation of a radio access network (“RAN”) associated with a cellulartelephone network. Several reference devices 115-1 through 115-4(hereinafter referred to collectively as “reference devices 115,” orindividually as “reference device 115”) may be present within coveragearea 105, and may be in communication with base station 110 (e.g., maytransmit signals to and/or receive signals from base station 110).Reference devices 115 may be referred to as “reference” devices, becausetheir actual physical distance from base station 110 may be a knowndistance. For example, as shown in FIG. 1A, the actual distance betweenreference device 115-1 and base station 110 may be distance d_(a).

As mentioned above, reference devices 115 may be in communication withbase station 110, such as wireless communication via one or more radiotransceivers. In addition to the known distance d_(a), for referencedevice 115-1, as shown in FIG. 1B, dynamically measured distance d_(m)may be obtained between reference device 115-1 and base station 110based on wireless communication between reference device 115-1 and basestation 110. Measured distance d_(m) may be measured based on, forexample, an RTD time associated with communications between referencedevice 115-1 and base station 110. That is, in some implementations,measured distance d_(m) may be measured based on the elapsed timebetween base station 110 sending a message to reference device 115-1 andbase station 110 receiving a response to the message from referencedevice 115-1.

In some implementations, one or more devices may calculate an estimationcoefficient δ based on d_(a) and d_(m) (e.g., d_(a)/d_(m), d_(m)/d_(a),or some other function of d_(a) and d_(m)). The estimation coefficient δmay indicate an error between actual distances of reference devices andmeasured distances of reference devices. As described below, estimationcoefficient δ may aid in estimating distances of other devices, forwhich actual distances are not known, from base station 110. That is,when attempting to determine a location of a device (e.g., a userdevice), estimation coefficient δ may be used to aid in compensating forerrors which may occur when measuring the distance of the device frombase station 110.

For example, as shown in FIG. 1C, user device 120 may be incommunication with base station 110. Measured user device distance u_(m)may be calculated based on communications between user device 120 andbase station 110 (e.g., based on RTD time and/or using anothertechnique). As shown in FIG. 1D, estimated user device distance u_(e)may be calculated based on d_(a), d_(m), and u_(m) (e.g., calculatedbased on δ and u_(m)). Determining the distance of user device 120 frombase station 110 based on δ and u_(m) may be more accurate thandetermining the distance of user device 120 from base station 110 basedon u_(m) alone, as δ may compensate for errors that may consistentlyoccur, and skew the measured distance readings in a predictable manner.

FIG. 2 illustrates an example environment 200, in which systems and/ormethods described herein may be implemented. As shown in FIG. 2,environment 200 may include base station 110, reference device 115, userdevice 120, serving gateway (“SGW”) 230, mobility management entitydevice (“MME”) 235, packet data network (“PDN”) gateway (“PGW”) 240,home subscriber server (“HSS”)/authentication, authorization, accounting(“AAA”) server 245 (hereinafter referred to as “HSS/AAA server 245”),operations support system (“OSS”) 250, policy charging and rulesfunction (“PCRF”) 255, service provider 260, and network 265.

The quantity of devices and/or networks, illustrated in FIG. 2, isprovided for explanatory purposes only. In practice, there may beadditional devices and/or networks; fewer devices and/or networks;different devices and/or networks; or differently arranged devicesand/or networks than illustrated in FIG. 2. Alternatively, oradditionally, one or more of the devices of environment 200 may performone or more functions described as being performed by another one ormore of the devices of environment 200. Devices of environment 200 mayinterconnect via wired connections, wireless connections, or acombination of wired and wireless connections.

Environment 200 may include an evolved packet system (“EPS”) thatincludes a long term evolution (“LTE”) network and/or an evolved packetcore (“EPC”) network that operate based on a third generationpartnership project (“3GPP”) wireless communication standard. The LTEnetwork may be, or may include, a RAN that includes one or more basestations 110, some or all of which, take the form of an eNodeB (“eNB”),via which user device 120 may communicate with the EPC network. The EPCnetwork may include one or more SGWs 230, MMEs 235, and/or PGWs 240, andmay enable user device 120 to communicate with network 265 and/or anInternet protocol (“IP”) multimedia subsystem (“IMS”) core network. TheIMS core network may include HSS/AAA server 245, and may manageauthentication, session initiation, account information, a user profile,etc. associated with user device 120.

Reference device 115 may include any computation and communicationdevice, such as a wireless mobile communication device that is capableof communicating with base station 110 and/or network 265. In someimplementations, reference device 115 may be a fixed device (e.g., adevice that typically remains in a particular physical location). Asmentioned above, reference device 115 may be a device for which thegeographical location is a known location. In some implementations,reference device 115 may include a vending machine, a smart grid meter,a point of sale device, or some other device. In some implementations,reference device 115 may include a mobile device, for which a geographiclocation may be able to be determined. For example, reference device 115may include a mobile device (e.g., a device that does not typicallyremain in a particular physical location), which includes a capabilityto determine its own location using global positioning system (“GPS”)techniques. Reference device 115 may send traffic to and/or receivetraffic to base station 110, and/or to one or more other devices.

User device 120 may include any computation and communication device,such as a wireless mobile communication device that is capable ofcommunicating with base station 110 and/or network 265. For example,user device 120 may include a radiotelephone; a personal communicationssystem (“PCS”) terminal (e.g., a device that combines a cellularradiotelephone with data processing and data communicationscapabilities); a personal digital assistant (“PDA”) (e.g., that caninclude a radiotelephone, a pager, Internet/intranet access, etc.); asmart phone; a laptop computer; a tablet computer; a camera; a personalgaming system, or another type of mobile computation and communicationdevice. User device 120 may send traffic to and/or receive traffic fromnetwork 265 via signal bearers, such as base station 110, SGW 230,and/or PGW 240.

Base station 110 may include one or more network devices that receive,process, and/or transmit traffic, such as calls, audio, video, text,and/or other data, destined for and/or received from user device 120. Inone example, base station 110 may be an eNB device and may be part ofthe LTE network. Additionally, or alternatively, one or more other basestations 110 may be associated with a RAN that is not associated withthe LTE network (e.g., a wireless hot spot, a wireless access point,etc.). Base station 110 may receive traffic from and/or send traffic tonetwork 265 via SGW 230 and PGW 240. Base station 110 may send trafficto and/or receive traffic from user device 120 via an air interface.

SGW 230 may include one or more network devices that gather, process,search, store, and/or provide information in a manner described herein.For example, SGW 230 may include a gateway, a router, a modem, a switch,a firewall, a network interface card (“NIC”), a hub, a bridge, a proxyserver, an optical add-drop multiplexer (“OADM”), or some other type ofdevice that processes and/or transfers traffic. SGW 230 may, forexample, aggregate traffic received from one or more base stations 110and may send the aggregated traffic to network 265 via PGW 240.

MME 235 may include one or more computation and communication devicesthat gather, process, search, store, and/or provide information in amanner described herein. For example, MME 235 may perform operations toregister user device 120 with the EPS, to establish bearer channelsassociated with a session with user device 120, to handoff user device120 from the EPS to another network, to handoff user device 120 from theother network to the EPS, and/or to perform other operations. MME 235may perform policing operations on traffic destined for and/or receivedfrom user device 120.

PGW 240 may include one or more network devices, or other types ofcomputation and communication devices, that gather, process, search,store, and/or provide information in a manner described herein. Forexample, PGW 240 may include a gateway, a router, a modem, a switch, afirewall, a NIC, a hub, a bridge, a proxy server, an OADM, or some othertype of device that processes and/or transfers traffic. PGW 240 mayaggregate traffic received from one or more SGWs 230, etc. and may sendthe aggregated traffic to network 265. PGW 240 may also, oralternatively, receive traffic from network 265 and may send the traffictoward user device 120 via SGW 230 and/or base station 110.

HSS/AAA server 245 may include one or more server devices, or othertypes of devices, that gather, process, search, store, and/or provideinformation. For example, HSS/AAA server 245 may manage, update, and/orstore, in a memory associated with HSS/AAA server 245, profileinformation associated with a subscriber. The profile information mayidentify applications and/or services that are permitted for and/oraccessible by the subscriber; a mobile directory number (“MDN”)associated with the subscriber; bandwidth or data rate thresholdsassociated with the applications and/or services; information associatedwith the subscriber (e.g., a username, a password, etc.); rateinformation; minutes allowed for a subscriber; and/or other information.The subscriber may be associated with user device 120 and/or one or moreother user devices 120. Additionally, or alternatively, HSS/AAA server245 may perform authentication, authorization, and/or accountingoperations associated with the subscriber and/or a communication sessionwith user device 120.

OSS 250 may include one or more server devices, or other types ofdevices, that support processes such as maintaining network inventory,provisioning services, configuring network components, and managingfaults.

PCRF 255 may include one or more server devices, or other types ofdevices, that aggregate information to and from the EPC network, OSS250, and/or other sources. PCRF 255 may receive information regardingpolicies and/or subscriptions from one or more sources, such assubscriber databases and/or from one or more users (such as, forexample, an administrator associated with PCRF 255).

Service provider 260 may include one or more server devices, or othertypes of computation and communication devices, that provide content.For example, service provider 260 may host a website that can beaccessed, by user device 120, to receive a service. The service may, forexample, correspond to content (e.g., applications, web pages, video,audio, images, games, advertising content, text, data, and/or somecombination thereof), a messaging service (e.g., email, instant message,etc.), a banking service, an electronic sales transaction service, etc.Service provider 260 may provide the content and/or service to userdevice 120 when application server 265 indicates that a subscriber, ofuser device 120, is authenticated.

Network 265 may include one or more wired and/or wireless networks. Forexample, network 265 may include a cellular network, a public landmobile network (“PLMN”), a second generation (“2G”) network, a thirdgeneration (“3G”) network, a fourth generation (“4G”) network, a fifthgeneration (“5G”) network, and/or another network. Additionally, oralternatively, network 265 may include a wide area network (“WAN”), ametropolitan area network (“MAN”), a telephone network (e.g., the PublicSwitched Telephone Network (“PSTN”)), an ad hoc network, an intranet,the Internet, a fiber optic-based network, and/or a combination of theseor other types of networks.

Location estimation server 270 may include one or more devices thatestimate distances of devices, such as user devices 120, from basestation 110. As described below, location estimation server 270 maystore information regarding reference devices 115 (e.g., informationregarding actual and/or measured distances of reference devices 115 frombase station 110), information regarding estimation coefficientsassociated with base station 110, and/or other information. In someimplementations, and as additionally described below, locationestimation server 270 may generate or modify estimation coefficientsbased on actual and/or measured distances of reference devices 115 frombase station 110. Furthermore, in some implementations, locationestimation server 270 may estimate distances of user devices 120 frombase station 110 based on, for example, estimation coefficientsassociated with base station 110.

FIG. 3 is a diagram of example functional components of system 300. Insome implementations, system 300 may correspond to, for example,location estimation server 270. In some implementations, system 300 maycorrespond to one or more other devices in addition to, or in lieu of,dead zone location server 115. As shown in FIG. 3, system 300 mayinclude reference device information repository 305, reference devicefilter module 310, base station information repository 315, locationtraining module 320, location estimation information repository 325, andlocation estimation module 330. Any, or all, of modules 305-325 may beimplemented by one or more memory devices and/or one or more processors.Furthermore, multiple modules may be associated with the same memorydevice and/or processor (e.g., one memory device, or one set of memorydevices, may store information associated with at least two differentones of modules 305-325).

Reference device information repository 305 may store informationregarding reference devices (e.g., regarding one or more referencedevices 115). As mentioned above, reference devices may be devices witha known location. The information stored by reference device informationrepository 305 may be used by one or more other devices, as describedbelow, when generating or modifying location estimation informationassociated with one or more base stations.

FIG. 4 illustrates an example data structure 400, which may be stored byreference device information repository 305. As shown in FIG. 4, datastructure 400 may store information regarding reference devices, such asa device identifier (“Device ID”) and a location of the reference device(“Location”). The device identifier, stored by data structure 400, maybe any type of device identifier. For example, in some implementations,the device identifier for a particular reference device may include aninternational mobile subscriber identity (“IMSI”), an electronic serialnumber (“ESN”), a mobile equipment identifier (“MEID”), a mobile devicenumber (“MDN”), and/or another device identifier of the particularreference device. In some implementations, the location information,stored by data structure 400, may be coordinates expressed in longitudeand latitude. In other implementations, the location information may berepresented in some other way.

Returning to FIG. 3, reference device filter module 310 may receiveinformation regarding communications from a device (e.g., from referencedevice 115 and/or user device 120), and determine whether the device isa reference device. As described below, if reference device filtermodule 310 determines that the device is a reference device, one or moredevices and/or modules may generate or modify location estimationinformation based on the communication. If, on the other hand, and alsoas described below, reference device filter module 310 determines thatthe device is not a reference device, one or more devices may uselocation estimation information to compute a location of the device.

In some implementations, a particular communication, received from adevice, may include a device identifier that may be used to identify thedevice (e.g., an IMSI, an ESN, an MEID, an MDN, and/or another deviceidentifier). Reference device filter module 310 may, in some suchimplementations, compare the device identifier to information stored byreference device information repository 305. Based on this comparison,reference device filter module 310 may determine whether the device,from which the communication was received, is a reference device. Forexample, if the device identifier associated with the communicationmatches device identifier information stored by reference deviceinformation repository 305, reference device filter module 310 maydetermine that the device is a reference device. If, on the other hand,the device identifier associated with the communication does not matchdevice identifier information stored by reference device informationrepository 305, reference device filter module 310 may determine thatthe device is not a reference device (e.g., that the device is a userdevice).

Base station information repository 315 may store information regardingbase stations (e.g., regarding one or more base stations 110). Theinformation stored by base station information repository 315 may beused when generating or modifying location estimation informationassociated with the base stations.

FIG. 5 illustrates an example data structure 500, which may be stored bybase station information repository 315. A base station may beassociated with one or more sectors (e.g., a particular coverage areathat is associated with a particular radio transceiver associated withthe base station). As shown in FIG. 5, data structure 500 may storeinformation regarding one or more sectors associated with one or morebase stations. As shown in FIG. 5, data structure 500 may store a sectoridentifier of a sector (“Sector ID”), information regarding a radioaccess technology (“RAT”) associated with the sector, a band frequencyassociated with the sector, a carrier frequency associated with thesector, a location of the sector (e.g., a location of a radiotransceiver associated with the sector, a location of a center point ofthe sector, or some other location associated with the sector), anantenna azimuth associated with the sector (e.g., as expressed as anangle relative to true north and/or some other reference point), and anantenna horizontal beamwidth (“Antenna Beamwidth”) associated with thesector.

Returning to FIG. 3, location training module 320 may generate or modifylocation estimation information based on communications received fromreference devices and/or information stored by reference device filtermodule 310 and/or base station information repository 315. As describedbelow, location estimation information may be used when computingdistances of user devices, for which an actual location is not known (ornot precisely known), from base stations.

Assume, for example, that, based on an RTD associated with acommunication received from a reference device, the measured distanced_(m) between the reference device and a particular base station iscalculated to be 95 meters. Further assume that, based on informationstored in reference device filter module 310 and base stationinformation repository 315, location training module 320 determines thatthe actual distance d_(a) between the reference device and the basestation is 100 meters. In this situation, location training module 320may calculate an estimation coefficient 6 based on d_(a) and d_(m), suchas 0.95 (d_(m)/d_(a)=95/100), or some other calculation based on d_(a)and d_(m). Thus, in this situation, location training module 320 maydetermine that an estimation coefficient 6 associated with the basestation (or a particular sector associated with the base station and thecommunication) is 0.95.

Location training module 320 may provide this information to arepository that stores location estimation information, such as locationestimation information repository 325 and/or some other device. Locationestimation information may include estimation coefficients 6, as well asinformation identifying base stations and/or sectors associated with theestimation coefficients δ. In some implementations, as described below,location estimation information may also associate one or moreadditional factors associated with estimation coefficients δ (e.g.,conditions that must be met for estimation coefficients δ to apply).

In some situations, location estimation information repository 325 mayalready store information regarding the particular base station and/orsector. In some such situations, location training module 320 may modifythe information regarding the particular base station and/or sectorbased on the information determined above. For example, assume thatlocation estimation information repository 325 stores informationregarding a particular sector, indicating that, based on 3communications, the estimation coefficient δ for the sector is 0.98.Based on the information calculated above, location training module 320may average the estimation coefficients δ to obtain a new estimationcoefficient δ for the sector. For instance, location training module 320may determine that the new estimation coefficient δ for the sector is0.9725 ((0.98*3+0.95)/4=0.9725). In some implementations, locationtraining module 320 may modify the estimation coefficient δ in someother way.

In some implementations, location training module 320 may determinetrends associated with communications in order to determine whether aparticular base station, or sector of a base station, should beassociated with multiple different estimation coefficients δ. Forinstance, such a situation may occur when different (e.g., significantlydifferent, such as a difference of 5%, 10%, 25%, or some otherproportion) estimation coefficients δ are observed under differentcircumstances.

For example, location training module 320 may identify that a particularsector is associated with an estimation coefficient δ of 0.95 on aparticular day or days of the week (e.g., Mondays), and that theparticular sector is associated with an estimation coefficient δ of 1.10on different days of the week. As another example, location trainingmodule 320 may identify that a particular sector is associated with oneestimation coefficient δ between a particular time of day (e.g.,3:00-5:00 PM), and that the particular sector is associated with adifferent estimation coefficient δ at different times. As yet anotherexample, location training module 320 may identify that a particularsector is associated with one estimation coefficient δ when a measureddistance d_(m) of a reference device is a particular distance or rangeof distances (e.g., 500 meters or less), and that the particular sectoris associated with a different estimation coefficient δ when themeasured distance d_(m) of the reference device is a different distanceor range of distances (e.g., greater than 500 meters). As a furtherexample, location training module 320 may identify that a particularsector is associated with one estimation coefficient δ when an actualdistance d_(a) of a reference device is a particular distance or rangeof distances (e.g., 500 meters or less), and that the particular sectoris associated with a different estimation coefficient δ when the actualdistance d_(a) of the reference device is a different distance or rangeof distances (e.g., greater than 500 meters).

While some examples of factors which could affect whether a particularbase station or sector is associated with multiple estimationcoefficients δ are described above, other factors may be used. Forexample, base stations or sectors may be associated with multipleestimation coefficients δ based on a bearing of a reference device froman antenna azimuth associated with a sector, a location of the referencedevice (e.g., a location on a radial map grid, a location on a Cartesianmap grid, longitude and latitude, etc.), and/or other factors.Furthermore, in some implementations, multiple factors may be combinedwhen associating base stations or sectors with multiple estimationcoefficients δ. For example, a particular sector may be associated withone estimation coefficient δ that may be used on Mondays between3:00-5:00 PM, for reference devices that are within 500 meters from thebase station.

As mentioned above, location estimation information repository 325 maystore location estimation information. FIGS. 6A-6C illustrate exampledata structures 600-610, which may be stored by location estimationinformation repository 325. In the example shown in FIG. 6A, datastructure 600 may associate sector identifiers with estimationcoefficients δ. In the example shown in FIG. 6B, data structure 605 mayassociate sector identifiers with time periods and estimationcoefficients δ. The information stored in example data structure 605 mayindicate that, on different days of the week, a particular sector may beassociated with different estimation coefficients δ. In the exampleshown in FIG. 6C, data structure 610 may associate sector identifierswith actual distances d_(a) and estimation coefficients δ. Theinformation stored in example data structure 610 may indicate that,based on different actual distances d_(a) of reference devices, aparticular sector may be associated with different estimationcoefficients δ. While FIG. 6C illustrates single values for actualdistances d_(a), in some implementations, data structure 610 may storevalues for ranges of actual distances d_(a) (e.g., less than 100 meters,between 100 meters and 400 meters, between 400 meters and 900 meters,greater than 900 meters, etc.).

Returning to FIG. 3, location estimation module 330 may computelocations of user devices (e.g., distances from base stations), based oncommunications received from user devices and location estimationinformation (e.g., information stored by location estimation informationrepository 325). For example, assume that, based on an RTD associatedwith the communication, the measured distance u_(m) between the userdevice and a particular base station is 100 meters. Further assume thatan estimation coefficient δ associated with the base station is 0.95.For purposes of this example, assume that the estimation coefficient δwas calculated using d_(a)/d_(m). In this example, location estimationmodule 330 may compute an estimated user device distance u_(e) of 95meters, using the equation u_(e)/u_(m)=d_(a)/d_(m), (which may also beexpressed as u_(e)/u_(m)=6). In other implementations, locationestimation module 330 may compute the estimated user device distanceu_(e), based on the estimation coefficient δ, using one or more othertechniques and/or computations. Location estimation module 330 mayoutput information indicating the estimated user device distance u_(e)to one or more devices, such as an application server and/or anotherdevice.

FIG. 7 illustrates an example process 700 for estimating a distance of adevice from a base station and/or for generating or modifying estimationinformation. In one example implementation, process 700 may be performedby location estimation server 270 (e.g., by one or more of modules305-330 described above with respect to FIG. 3). In another exampleimplementation, some or all of process 700 may be performed by a deviceor collection of devices separate from, or in combination with, locationestimation server 270.

Process 700 may include receiving a communication from a device (block705). For example, location estimation server 270 may receiveinformation from MME 235 (and/or another device) indicating that acommunication has been received from a device, via, e.g., base station110. This communication may include any type of communication, such as acommunication associated with a voice call, a data transfer, a periodic“keep-alive” message, and/or another type of communication.

Process 700 may also include determining whether the device, from whichthe communication was received (at block 705) is a reference device(block 710). For example, as described above with respect to referencedevice filter module 310, location estimation server 270 may useinformation (such as device identifier information included in thecommunication) to determine whether the device is a reference device.

If the device is a reference device (block 710—YES), then process 700may include generating or modifying location estimation information(block 715). A detailed example of processing associated with block 715,according to some implementations, is described below with respect toFIG. 8. Process 700 may also include storing or outputting the locationestimation information (block 720). For example, location estimationserver 270 may store the location estimation information in arepository, such as location estimation information repository 325,and/or output the location estimation information to one or more otherdevices.

If, on the other hand, the device is not a reference device (block710—NO), then process 700 may include computing an estimated location ofthe device (block 725). A detailed example of processing associated withblock 725, according to some implementations, is described below withrespect to FIG. 9. Process 700 may also include storing or outputtinginformation regarding the computed estimated location (block 730). Forexample, location estimation server 270 may output the locationestimation information to one or more other devices.

FIG. 8 illustrates an example process 800 for generating or modifyingestimation information. In one example implementation, process 800 maybe performed by location estimation server 270 (e.g., by module 320described above with respect to FIG. 3, and/or by one or more othermodules described above with respect to FIG. 3). In another exampleimplementation, some or all of process 800 may be performed by a deviceor collection of devices separate from, or in combination with, locationestimation server 270. As mentioned above, process 800 may, in someimplementations, correspond to block 715 of process 700.

Process 800 may include identifying an actual distance of a referencedevice from a base station (block 805). For example, as described abovewith respect to reference device information repository 305, basestation information repository 315, data structure 400, and datastructure 500, location estimation server 270 may store informationregarding locations of base stations and reference devices. Based onthis information, location estimation server 270 may identify a locationof a base station, via which a communication was received from areference device, and may also identify a location of the referencedevice, from which the communication was received. Based on theselocations, location estimation server 270 may identify an actualdistance d_(a) of the reference device from the base station.

Process 800 may also include measuring a distance of the referencedevice from the base station (block 810). As mentioned above, themeasured distance d_(m) may be based on a RTD time, and/or based on someother technique of wirelessly measuring a distance of a device from abase station. In some implementations, location estimation server 270may receive information regarding the measured distance d_(m) from oneor more devices, such as from MME 235.

Process 800 may additionally include generating or modifying anestimation coefficient based on the actual distance and the measureddistance (block 815). For example, location estimation server 270 maycalculate an estimation coefficient δ based on the actual distance d_(a)and the measured distance d_(m). In some implementations, the estimationcoefficient δ may be a simple ratio of d_(a) and d_(m) (e.g.,d_(a)/d_(m) or d_(m)/d_(a)). In some implementations, locationestimation server 270 may calculate the estimation coefficient δ basedon d_(a) and d_(m) using some other technique. As mentioned above,location estimation server 270 may, in some implementations, average thecalculated estimation coefficient δ with other estimation coefficients δassociated with a particular base station or sector of a base station toobtain an average estimation coefficient δ for the base station orsector.

Process 800 may further include identifying additional informationassociated with the base station and/or the reference device (block820). For example, as discussed above, location estimation server 270may identify potential trends, which may be associated with varyingestimation coefficients δ for a particular base station or sector. Thesetrends may include days of the week, times of day, measured distancesd_(m) of reference devices, actual distances d_(a) of reference devices,bearing of reference devices from antenna azimuths of sectors, locationsof reference devices, and/or other factors.

Process 800 may also include generating or modifying location estimationinformation based on the estimation coefficient, the additionalinformation associated with base station, and/or the informationassociated with reference device (block 825). For example, locationestimation server 270 may generate or modify location estimationinformation, as shown in example data structures 600-610 of FIGS. 6A-6C.In some implementations, location estimation server 270 may generate ormodify location estimation information based only on recent information(e.g., based on estimation coefficients calculated within the last week,month, season, or some other measure of time).

FIG. 9 illustrates an example process 900 for estimating a distance of adevice from a base station based on estimation information. In oneexample implementation, process 900 may be performed by locationestimation server 270 (e.g., by module 330 described above with respectto FIG. 3, and/or by one or more other modules described above withrespect to FIG. 3). In another example implementation, some or all ofprocess 900 may be performed by a device or collection of devicesseparate from, or in combination with, location estimation server 270.As mentioned above, process 900 may, in some implementations, correspondto block 725 of process 700.

Process 900 may include measuring a distance of a device from a basestation (block 905). As mentioned above, the measured distance of thedevice u_(m) may be based on a RTD time, and/or based on some othertechnique of wirelessly measuring a distance of a device from a basestation. In some implementations, the technique of wirelessly measuringthe distance of the device u_(m) may be the same as the technique usedto wirelessly measure the distance of a reference device d_(m). In someimplementations, location estimation server 270 may receive informationregarding the measured distance u_(m) from one or more devices, such asfrom MME 235.

Process 900 may also include identifying an estimation coefficientassociated with the base station (block 910). For example, locationestimation server 270 may identify an estimation coefficient δ, storedby data structure 600, associated with the base station. In someimplementations, as discussed above, location estimation server 270 mayidentify an estimation coefficient δ, associated with the base station,based on one or more applicable factors (e.g., time of day, day of week,etc.).

Process 900 may further include computing an estimated distance of thedevice based on the measured distance and the estimation coefficient(block 915). For example, location estimation server 270 may calculatean estimated distance of the device u_(e) by, for example, multiplyingthe measured distance u_(m) by the estimation coefficient δ, dividingthe measured distance u_(m) by the estimation coefficient δ, and/or viaone or more other computations.

In some implementations, location estimation server 270 may furtherrefine an estimate of a location of a user device, using the estimateddistance u_(e) with other information. FIG. 10 illustrates an exampleprocess 1000 performing such a refinement of an estimate of a locationof a device, based on signal strength and distance from a base station.In one example implementation, process 1000 may be performed by locationestimation server 270 (e.g., by one or more of modules 305-330 describedabove with respect to FIG. 3). In another example implementation, someor all of process 1000 may be performed by a device or collection ofdevices separate from, or in combination with, location estimationserver 270. Process 1000 is described in conjunction with FIGS. 11A and11B, which illustrate examples of concepts associated with process 1000.

Process 1000 may include identifying a signal strength associated with adevice (block 1005). For example, location estimation server 270 mayreceive information regarding an RSSI associated with a communicationbetween a user device and a base station. In some implementations,location estimation server 270 may receive the information regarding theRSSI from MME 235 and/or from some other device.

Process 1000 may also include identifying a set of candidate sub-sectorsbased on an antenna azimuth angle and antenna beamwidth of the basestation (block 1010). As shown in FIG. 11A, area 1105 may represent ageographic area around a base station. Area 1105 may include severalsub-sectors, which are represented in FIG. 11A as 172 squares. Lines1110 and 1112 may represent a portion of area 1105 that is within acoverage area of the base station, and may be determined based on theantenna azimuth angle and antenna beamwidth of a radio transceiverassociated with the base station. The shaded squares, which aregenerally bounded by lines 1110 and 1112, may conceptually representsub-sectors that are within the coverage area of the base station, andare, thus, candidate sub-sectors (e.g., sub-sectors in which a userdevice, which is in communication with the base station, may bepresent).

Process 1000 may further include identifying signal strength informationassociated with the candidate sub-sectors (block 1015). In someimplementations, location estimation server 270 may store informationidentifying values of RSSIs associated with particular sub-sectors.These values may be obtained by measuring RSSIs of reference deviceswhich are known to be in the particular sub-sectors, and/or via anothertechnique (e.g., via manual input by one or more administrators).

Process 1000 may additionally include identifying a distance of thedevice from the base station (block 1020). In some implementations,location estimation server 270 may identify a distance of the deviceusing a technique similar to the techniques described above with respectto FIG. 9. In some implementations, location estimation server 270 mayidentify the distance of the device using one or more other techniques.

Process 1000 may also include calculating a location of the device basedon the signal strength and the distance (block 1025). As shown in FIG.11B, several of the candidate sub-sectors, identified at block 1010, maybe associated with the distance identified at block 1020. For example,subsectors 1115-1 through 1115-12 and 1120-1 through 1120-5 may be at,or may include a point that is at, a distance that matches the distanceidentified at block 1020. Location estimation server 270 may identify,which (if any) of these sub-sectors are associated with an RSSI thatmatches (or approximately matches, e.g., is within 5%, 10%, 25%, or someother amount) the RSSI associated with the device (at block 1005). Inthe example shown in FIG. 11B, the shaded sub-sectors (i.e., sub-sectors1120-1 through 1120-5) may be sub-sectors for which RSSI informationmatches the RSSI of the device. Thus, location estimation server 270 maydetermine that the device is located in one of sub-sectors 1120-1through 1120-5. In some implementations, location estimation server 270may store and/or output the information regarding the calculatedlocation of the device.

Although sub-sectors are illustrated in FIGS. 11A and 11B as squares, insome implementations, sub-sectors may be represented in other ways. Forexample, in some implementations, sub-sectors may be represented asrectangles and/or any other shape (either regular or irregular). In someimplementations, sub-sectors may be represented as a radial grid, asshown in FIG. 11C. As shown in FIG. 11C, sub-sectors may include, forexample, sub-sectors 1125-1 through 1125-4.

The device(s) and processes described above may be capable ofdetermining a location of a user device, based on signals transmittedbetween the user device and a base station (e.g., between the userdevice and a single base station), in a manner that accounts forconsistent and/or predictable errors. Furthermore, in someimplementations, the techniques described above may be combined withother techniques, such as triangulation.

FIG. 12 is a diagram of example components of device 1200. Each of thedevices illustrated in FIG. 1 or 2 may include one or more devices 1200.Device 1200 may include bus 1210, processor 1220, memory 1230, inputcomponent 1240, output component 1250, and communication interface 1260.In another implementation, device 1200 may include additional, fewer,different, or differently arranged components. Some non-limitingexamples of device 1200, with additional and/or different components,are discussed below.

Bus 1210 may include one or more communication paths that permitcommunication among the components of device 1200. Processor 1220 mayinclude a processor, microprocessor, or processing logic that mayinterpret and execute instructions. Memory 1230 may include any type ofdynamic storage device that may store information and instructions forexecution by processor 1220, and/or any type of non-volatile storagedevice that may store information for use by processor 1220.

Input component 1240 may include a mechanism that permits an operator toinput information to device 1200, such as a keyboard, a keypad, abutton, a switch, etc. Output component 1250 may include a mechanismthat outputs information to the operator, such as a display, a speaker,one or more light emitting diodes (“LEDs”), etc.

Communication interface 1260 may include any transceiver-like mechanismthat enables device 1200 to communicate with other devices and/orsystems. For example, communication interface 1260 may include anEthernet interface, an optical interface, a coaxial interface, or thelike. Communication interface 1260 may include a wireless communicationdevice, such as an infrared (“IR”) receiver, a Bluetooth radio, or thelike. The wireless communication device may be coupled to an externaldevice, such as a remote control, a wireless keyboard, a mobiletelephone, etc. In some embodiments, device 1200 may include more thanone communication interface 1260. For instance, device 1200 may includean optical interface and an Ethernet interface.

Device 1200 may perform certain operations relating to computing anestimated location of a device and/or a distance of the device from abase station. Device 1200 may perform these operations in response toprocessor 1220 executing software instructions stored in acomputer-readable medium, such as memory 1230. A computer-readablemedium may be defined as a non-transitory memory device. A memory devicemay include space within a single physical memory device or spreadacross multiple physical memory devices. The software instructions maybe read into memory 1230 from another computer-readable medium or fromanother device. The software instructions stored in memory 1230 maycause processor 1220 to perform processes described herein.Alternatively, hardwired circuitry may be used in place of or incombination with software instructions to implement processes describedherein. Thus, implementations described herein are not limited to anyspecific combination of hardware circuitry and software.

The foregoing description of implementations provides illustration anddescription, but is not intended to be exhaustive or to limit thepossible implementations to the precise form disclosed. Modificationsand variations are possible in light of the above disclosure or may beacquired from practice of the implementations. For example, while seriesof blocks have been described with regard to FIGS. 7-10, the order ofthe blocks may be modified in other implementations. Further,non-dependent blocks may be performed in parallel.

Furthermore, while examples of data structure have been described abovewith respect to FIGS. 4-6C, these data structures may store additional,different, differently arranged, or less information than the examplesprovided above. Additionally, while these example data structures arepresented as tables, any other data structure may be used, such as alinked list, a tree, a hash table, an array, and/or any other type ofdata structure. It will be apparent that embodiments, as describedabove, may be implemented in many different forms of software, firmware,and hardware in the implementations illustrated in the figures.

The actual software code or specialized control hardware used toimplement an embodiment is not limiting of the embodiment. Thus, theoperation and behavior of the embodiment has been described withoutreference to the specific software code, it being understood thatsoftware and control hardware may be designed based on the descriptionherein.

Even though particular combinations of features are recited in theclaims and/or disclosed in the specification, these combinations are notintended to limit the disclosure of the possible implementations. Infact, many of these features may be combined in ways not specificallyrecited in the claims and/or disclosed in the specification. Althougheach dependent claim listed below may directly depend on only one otherclaim, the disclosure of the possible implementations includes eachdependent claim in combination with every other claim in the claim set.

No element, act, or instruction used in the present application shouldbe construed as critical or essential unless explicitly described assuch. Also, as used herein, the article “a” is intended to include oneor more items, and may be used interchangeably with the phrase “one ormore.” Where only one item is intended, the term “one” or similarlanguage is used. Further, the phrase “based on” is intended to mean“based, at least in part, on” unless explicitly stated otherwise.

What is claimed is:
 1. A method, comprising: determining, by a serverdevice, an estimation coefficient based on: a measured distance betweena first device and a second device, and an actual distance between thefirst device and the second device; and using, by the server device, theestimation coefficient to estimate a location of a third device that isassociated with the second device, the first device, the second device,and the third device being different devices.
 2. The method of claim 1,wherein the second device is a base station of a wirelesstelecommunications network.
 3. The method of claim 3, wherein the thirddevice is a user device associated with the wireless telecommunicationsnetwork.
 4. The method of claim 1, wherein the measured distance betweenthe first device and the second device is based on a round trip delaytime of one or more communications between the first device and thesecond device.
 5. The method of claim 1, wherein the measured distancebetween the first device and the second device is different from anactual distance between the first device and the second device.
 6. Themethod of claim 1, wherein estimating the location of the third deviceincludes: identifying a radio signal strength associated with acommunication between the second device and the third device;identifying one or more geographical areas that are associated withradio signal strengths that at least approximately match the identifiedradio signal strength, and that match a distance between the seconddevice and the third device; and determining that a location of thethird device includes at least one of the identified one or moregeographical areas.
 7. The method of claim 6, wherein identifying theone or more geographical areas that match the distance between thesecond device and the third device includes: identifying the one or moregeographical areas that match a distance that is based on: theestimation coefficient, and the measured distance between the seconddevice and the third device.
 8. The method of claim 1, wherein theactual distance between the first device and the second device isdetermined based on global positioning system functionality associatedwith the first device.
 9. A method, comprising: determining a locationof a user device based on: a measured distance between the user deviceand a base station, an actual distance between a reference device andthe base station, and a measured distance between the reference deviceand the base station; and storing or outputting the informationregarding the determined location of the user device.
 10. The method ofclaim 9, wherein the measured distance between the reference device andthe base station is based on a round trip delay time of one or morecommunications between the reference device and the base station. 11.The method of claim 9, wherein the measured distance between thereference device and the base station is different from an actualdistance between the reference device and the base station.
 12. Themethod of claim 9, wherein determining the location of the user devicefurther includes: identifying a radio signal strength associated with acommunication between the user device and the base station; identifyingone or more geographical areas that are associated with radio signalstrengths that at least approximately match the identified radio signalstrength, and that match a distance between the user device and the basestation; and determining that a location of the user device includes atleast one of the identified one or more geographical areas.
 13. Themethod of claim 10, wherein identifying the one or more geographicalareas that match the distance between the user device and the basestation includes: identifying the one or more geographical areas basedon: the actual distance between the reference device and the basestation, the measured distance between the reference device and the basestation, and the measured distance between the user device and the basestation.
 14. The method of claim 9, wherein the actual distance betweenthe reference device and the base station is determined based on globalpositioning system functionality associated with the reference device.15. A system, comprising: a non-transitory memory device storingprocessor-executable instructions; and a processor configured to executethe processor-executable instructions, wherein executing theprocessor-executable instructions causes the processor to: determine alocation of a user device based on: a measured distance between the userdevice and a base station of a wireless telecommunications network, anactual distance between a reference device and the base station, and ameasured distance between the reference device and the base station; andstore or output the information regarding the determined location of theuser device.
 16. The system of claim 15, wherein the measured distancebetween the reference device and the base station is based on a roundtrip delay time of one or more communications between the referencedevice and the base station.
 17. The system of claim 15, wherein themeasured distance between the reference device and the base station isdifferent from an actual distance between the reference device and thebase station.
 18. The system of claim 15, wherein executing theprocessor-executable instructions, to determine the location of the userdevice, further causes the processor to: identify a radio signalstrength associated with a communication between the user device and thebase station; identify one or more geographical areas that areassociated with radio signal strengths that at least approximately matchthe identified radio signal strength, and that match a distance betweenthe user device and the base station; and determine that a location ofthe user device includes at least one of the identified one or moregeographical areas.
 19. The system of claim 18, wherein executing theprocessor-executable instructions, to identify the one or moregeographical areas that match the distance between the user device andthe base station, further causes the processor to: identify the one ormore geographical areas based on: the actual distance between thereference device and the base station, the measured distance between thereference device and the base station, and the measured distance betweenthe user device and the base station.
 20. The system of claim 15,wherein the actual distance between the reference device and the basestation is determined based on global positioning system functionalityassociated with the reference device.